home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2001 May / SGI Freeware 2001 May - Disc 1.iso / dist / fw_kdelibs.idb / usr / freeware / kde / include / bookmark.h.z / bookmark.h
C/C++ Source or Header  |  1999-01-26  |  3KB  |  104 lines

  1. /* This file is part of the KDE libraries
  2.     Copyright (C) 1996, 1997, 1998 Martin R. Jones <mjones@kde.org>
  3.       
  4.     This library is free software; you can redistribute it and/or
  5.     modify it under the terms of the GNU Library General Public
  6.     License as published by the Free Software Foundation; either
  7.     version 2 of the License, or (at your option) any later version.
  8.  
  9.     This library is distributed in the hope that it will be useful,
  10.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.     Library General Public License for more details.
  13.  
  14.     You should have received a copy of the GNU Library General Public License
  15.     along with this library; see the file COPYING.LIB.  If not, write to
  16.     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17.     Boston, MA 02111-1307, USA.
  18. */
  19. //-----------------------------------------------------------------------------
  20. //
  21. // KDE HTML Bookmarks
  22. //
  23. // (c) Martin R. Jones 1996
  24. //
  25.  
  26. #ifndef __BOOKMARK_H__
  27. #define __BOOKMARK_H__
  28.  
  29. #include <qobject.h>
  30. #include <qtstream.h>
  31. #include "booktoken.h"
  32.  
  33. class KBookmark
  34. {
  35. public:
  36.     enum { URL, Folder };
  37.  
  38.     KBookmark();
  39.     KBookmark( const char *_text, const char *_url );
  40.  
  41.     void clear();
  42.  
  43.     void setText( const char *_text )    {    text = _text; }
  44.     void setURL( const char *_url )    {    url = _url; }
  45.     void setType( int _type )    {    type = _type; }
  46.  
  47.     const char *getText()    {    return text; }
  48.     const char *getURL()    {    return url; }
  49.     int getType()    {    return type; }
  50.  
  51.     QList<KBookmark> &getChildren()     { return children; }
  52.  
  53. private:
  54.     QString text;
  55.     QString url;
  56.     int type;
  57.     QList<KBookmark> children;
  58. };
  59.  
  60. class KBookmarkManager : public QObject
  61. {
  62.     Q_OBJECT
  63. public:
  64.     KBookmarkManager();
  65.  
  66.     void setTitle( const char *t )
  67.         {    title = t; }
  68.  
  69.     void read( const char *filename );
  70.     void write( const char *filename );
  71.  
  72.     void add( const char *_text, const char *_url );
  73.     // rich
  74.     bool remove(int);
  75.     bool moveUp(int);
  76.     bool moveDown(int);
  77.     void reread();
  78.     void rename(int, const char *);
  79.     /**
  80.      * Overloaded to reread the last file loaded
  81.      */
  82.     void write();
  83.  
  84.     KBookmark *getBookmark( int id );
  85.     KBookmark *getRoot()    {    return &root; }
  86.  
  87. private:
  88.     const char *parse( BookmarkTokenizer *ht, KBookmark *parent, const char *_end);
  89.     void    writeFolder( QTextStream &stream, KBookmark *parent );
  90.     KBookmark *findBookmark( KBookmark *parent, int id, int &currId );
  91.  
  92. signals:
  93.     void changed();
  94.  
  95. private:
  96.     KBookmark root;
  97.     QString title;
  98.     // rich
  99.         QString myFilename;
  100. };
  101.  
  102. #endif    // __BOOKMARK_H__
  103.  
  104.